Platform Explorer / Nuxeo Platform LTS 2019 10.10

Extension point directories

Documentation

Registration of generic directories. Generic directories are usable only as extensions to other directories which have been defined as templates.

First, register a template directory:

    <extension point="directories" target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory">
        <directory name="template-dir" template="true">
            <dataSource>java:/nxsqldirectory</dataSource>
            <createTablePolicy>always</createTablePolicy>
            <querySizeLimit>100</querySizeLimit>
        </directory>
    </extension>

Then use a generic directory to provide specific customizations:

    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
        <directory extends="template-dir" name="my-directory">
            <schema>myschema</schema>
            <table>mytable</table>
            <idField>id</idField>
            <passwordField>password</passwordField>
            <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
            <substringMatchType>subany</substringMatchType>
            <cacheTimeout>3600</cacheTimeout>
            <cacheMaxSize>1000</cacheMaxSize>
            <!-- <dataFile>my-directory.csv</dataFile> -->
        </directory>
    </extension>

Contribution Descriptors

  • Class: org.nuxeo.ecm.directory.BaseDirectoryDescriptor

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-runtime-10.10-HF33-patch-NXP-29565.jar /opt/nuxeo-server-10.10-tomcat/nxserver/config/login-digest-config.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="digestauth">
          <schema>digestauth</schema>
          <idField>username</idField>
          <passwordField>password</passwordField>
          <types>
            <type>system</type>
          </types>
        </directory>
      </extension>
  • nuxeo-runtime-10.10-HF33-patch-NXP-29565.jar /opt/nuxeo-server-10.10-tomcat/nxserver/config/default-directories-bundle.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-user" name="userDirectory">
    
          <schema>user</schema>
    
          <types>
            <type>system</type>
          </types>
    
          <idField>username</idField>
          <passwordField>password</passwordField>
          <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
          <autoincrementIdField>false</autoincrementIdField>
          <dataFile>users.csv</dataFile>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <querySizeLimit>50</querySizeLimit>
    
          <!-- comment <cache* /> tags to disable the cache -->
          <cacheEntryName>user-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>user-entry-cache-without-references</cacheEntryWithoutReferencesName>
    
          <references>
            <inverseReference directory="groupDirectory" dualReferenceField="members" field="groups"/>
          </references>
    
        </directory>
    
        <directory extends="template-group" name="groupDirectory">
    
          <schema>group</schema>
          <types>
            <type>system</type>
          </types>
          <idField>groupname</idField>
          <dataFile>groups.csv</dataFile>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <autoincrementIdField>false</autoincrementIdField>
    
          <!-- comment <cache* /> tags to disable the cache -->
          <cacheEntryName>group-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>group-entry-cache-without-references</cacheEntryWithoutReferencesName>
    
          <references>
            <reference dataFile="user2group.csv" directory="userDirectory" field="members" name="user2group" source="groupId" target="userId"/>
            <!-- Warning ! From Nuxeo 5.3.1, a wrong setting has been fixed. See
            http://jira.nuxeo.org/browse/NXP-4401 . Nuxeo upgrades would need a fix in the
            database (inverting parentGroupId and childGroupId in the group2group)  -->
            <reference directory="groupDirectory" field="subGroups" name="group2group" source="parentGroupId" target="childGroupId"/>
            <inverseReference directory="groupDirectory" dualReferenceField="subGroups" field="parentGroups"/>
          </references>
    
        </directory>
    
        <directory extends="template-directory" name="digestauth">
          <schema>digestauth</schema>
          <idField>username</idField>
          <passwordField>password</passwordField>
          <types>
            <type>system</type>
          </types>
          <cacheEntryName>digestauth-entry-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>digestauth-entry-cache-without-references</cacheEntryWithoutReferencesName>
        </directory>
    
      </extension>
  • nuxeo-permissions-10.10-HF14.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="aceinfo">
          <schema>aceinfo</schema>
          <idField>id</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-platform-audit-core-10.10-HF33.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-vocabulary" name="eventTypes">
          <dataFile>directories/event-types.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
        <directory extends="template-vocabulary" name="eventCategories">
          <dataFile>directories/event-categories.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
      </extension>
  • nuxeo-platform-default-config-10.10.jar /OSGI-INF/nxdirectories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="template-vocabulary" template="true">
          <schema>vocabulary</schema>
          <idField>id</idField>
        </directory>
    
        <directory extends="template-directory" name="template-xvocabulary" template="true">
          <schema>xvocabulary</schema>
          <idField>id</idField>
        </directory>
    
        <directory extends="template-directory" name="template-l10nxvocabulary" template="true">
          <schema>l10nxvocabulary</schema>
          <idField>id</idField>
        </directory>
    
        <directory extends="template-directory" name="template-documentsLists" template="true">
          <schema>documentsLists</schema>
          <idField>id</idField>
        </directory>
    
      </extension>
  • nuxeo-platform-default-config-10.10.jar /OSGI-INF/nxdirectories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-xvocabulary" name="country">
          <parentDirectory>continent</parentDirectory>
          <dataFile>directories/country.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="continent">
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">country</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/continent.csv</dataFile>
        </directory>
    
        <directory extends="template-l10nxvocabulary" name="l10ncoverage">
          <parentDirectory>l10ncoverage</parentDirectory>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10ncoverage</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/l10ncoverage.csv</dataFile>
        </directory>
    
        <directory extends="template-xvocabulary" name="subtopic">
          <parentDirectory>topic</parentDirectory>
          <dataFile>directories/subtopic.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="topic">
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">subtopic</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/topic.csv</dataFile>
        </directory>
    
        <directory extends="template-l10nxvocabulary" name="l10nsubjects">
          <parentDirectory>l10nsubjects</parentDirectory>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10nsubjects</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
          <dataFile>directories/l10nsubjects.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="subject">
          <types>
            <type>system</type>
          </types>
          <dataFile>directories/subject.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="search_operators">
          <types>
            <type>system</type>
          </types>
          <dataFile>directories/search_operators.csv</dataFile>
        </directory>
    
        <directory extends="template-documentsLists" name="documentsLists">
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Write">
              <group>Everyone</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-vocabulary" name="language">
          <dataFile>directories/language.csv</dataFile>
        </directory>
    
        <directory extends="template-vocabulary" name="nature">
          <dataFile>directories/nature.csv</dataFile>
        </directory>
    
      </extension>
  • nuxeo-multi-tenant-core-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="tenants">
          <schema>tenant</schema>
          <idField>id</idField>
          <entryCacheName>tenants-cache</entryCacheName>
          <entryCacheWithoutReferencesName>tenants-cache-without-ref</entryCacheWithoutReferencesName>
        </directory>
    
        <directory extends="template-directory" name="topic">
          <schema>multitenantvocabulary</schema>
          <idField>id</idField>
          <dataFile>directories/topic.csv</dataFile>
          <entryCacheName>topic-cache</entryCacheName>
          <entryCacheWithoutReferencesName>topic-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">subtopic</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
        <directory extends="template-directory" name="subtopic">
          <schema>multitenantxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>topic</parentDirectory>
          <dataFile>directories/subtopic.csv</dataFile>
          <entryCacheName>subtopic-cache</entryCacheName>
          <entryCacheWithoutReferencesName>subtopic-cache-without-ref</entryCacheWithoutReferencesName>
        </directory>
    
        <directory extends="template-directory" name="l10nsubjects">
          <schema>multitenantl10nxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>l10nsubjects</parentDirectory>
          <dataFile>directories/l10nsubjects.csv</dataFile>
          <entryCacheName>l10nsubjects-cache</entryCacheName>
          <entryCacheWithoutReferencesName>l10nsubjects-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10nsubjects</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
        <directory extends="template-directory" name="l10ncoverage">
          <schema>multitenantl10nxvocabulary</schema>
          <idField>id</idField>
          <parentDirectory>l10ncoverage</parentDirectory>
          <dataFile>directories/l10ncoverage.csv</dataFile>
          <entryCacheName>l10ncoverage-cache</entryCacheName>
          <entryCacheWithoutReferencesName>l10ncoverage-cache-without-ref</entryCacheWithoutReferencesName>
          <deleteConstraint class="org.nuxeo.ecm.directory.HierarchicalDirectoryDeleteConstraint">
            <property name="targetDirectory">l10ncoverage</property>
            <property name="targetDirectoryField">parent</property>
          </deleteConstraint>
        </directory>
    
      </extension>
  • nuxeo-platform-login-shibboleth-10.10.jar /OSGI-INF/shibboleth-group-type-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="shibbGroup">
          <schema>shibbolethGroup</schema>
          <idField>groupName</idField>
          <types>
            <type>system</type>
          </types>
        </directory>
      </extension>
  • nuxeo-platform-login-token-10.10.jar /OSGI-INF/token-authentication-directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="authTokens">
          <schema>authtoken</schema>
          <idField>token</idField>
          <table>auth_tokens</table>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
          <!-- Set cache to 5 minutes -->
          <cacheTimeout>300</cacheTimeout>
          <cacheMaxSize>1000</cacheMaxSize>
        </directory>
    
      </extension>
  • nuxeo-platform-oauth-10.10-HF32.jar /OSGI-INF/directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="oauth2ServiceProviders">
          <schema>oauth2ServiceProvider</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <substringMatchType>subfinal</substringMatchType>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>___Nobody___</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauth2Tokens">
          <schema>oauth2Token</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauth2Clients">
          <schema>oauth2Client</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <dataFile>directories/oauth2clients.csv</dataFile>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-platform-oauth1-10.10.jar /OSGI-INF/directory-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="oauthConsumers">
          <schema>oauthConsumer</schema>
          <idField>consumerKey</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauthServiceProviders">
          <schema>oauthServiceProvider</schema>
          <idField>id</idField>
          <autoincrementIdField>true</autoincrementIdField>
          <substringMatchType>subfinal</substringMatchType>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
        <directory extends="template-directory" name="oauthTokens">
          <schema>oauthToken</schema>
          <idField>token</idField>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
    
      </extension>
  • nuxeo-platform-relations-default-config-10.10.jar /OSGI-INF/directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="predicates">
          <schema>vocabulary</schema>
          <idField>id</idField>
          <table>relation_predicates</table>
          <dataFile>directories/relation_predicates.csv</dataFile>
        </directory>
    
        <directory extends="template-directory" name="inverse_predicates">
          <schema>vocabulary</schema>
          <idField>id</idField>
          <table>relation_inverse_predicates</table>
          <dataFile>directories/relation_inverse_predicates.csv</dataFile>
        </directory>
    
      </extension>
  • nuxeo-platform-signature-core-10.10.jar /OSGI-INF/directory-contrib.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-directory" name="certificate">
          <schema>cert</schema>
          <idField>userid</idField>
          <passwordField>keypassword</passwordField>
          <passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
          <types>
            <type>system</type>
          </types>
          <permissions>
            <permission name="Read">
              <group>__Nobody__</group>
            </permission>
          </permissions>
        </directory>
      </extension>
  • nuxeo-routing-core-10.10-HF32.jar /OSGI-INF/document-routing-directories-contrib.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
    
        <directory extends="template-vocabulary" name="execution_type">
          <table>ecp-note-type</table>
          <dataFile>directories/execution_type.csv</dataFile>
          <types>
            <type>system</type>
          </types>
        </directory>
    
      </extension>
  • nuxeo-routing-default-10.10.jar /OSGI-INF/extensions.xml
    <extension point="directories" target="org.nuxeo.ecm.directory.GenericDirectory">
        <directory extends="template-vocabulary" name="WorkflowType">
          <autoincrementIdField>false</autoincrementIdField>
          <createTablePolicy>on_missing_columns</createTablePolicy>
          <table>studio_vocabulary_WorkflowType</table>
          <dataFile>data/vocabularies/WorkflowType.csv</dataFile>
          <cacheEntryName>vocab-WorkflowType-cache</cacheEntryName>
          <cacheEntryWithoutReferencesName>vocab-WorkflowType-cache-without-references</cacheEntryWithoutReferencesName>
        </directory>
      </extension>